The present invention relates to a sampling function waveform data generating device for generating waveform data based on a sampling function.
Conventionally, a CD (Compact Disk) player, uses a D/A (digital-to-analog) converter to which an over-sampling technique is applied to obtain a continuous analog audio signal from discrete digital music data. Such a D/A converter generally uses a digital filter to raise a pseudo sampling frequency by interpolating input digital data, and outputs smooth analog voice signals by passing each interpolation value through a low-pass filter after generating a staircase signal waveform with each interpolation value held by the sample holding circuit.
A data interpolating process is performed with a digital filter mentioned above using a sampling function generally referred to as a sinc function. FIG. 7 is an explanatory graph of a sinc function. This sinc function is obtained when a Dirac delta function is inverse-Fourier-transformed, and is defined as sin (xcfx80ft)/(xcfx80ft) where the sampling frequency is f. This sinc function becomes one only at a sample point, where t=0, and zero at all other sample points. In the FIG. 7, sinc function corresponding to the range where t=xc2x13 is showed.
A sinc function converges to 0 as a variable t goes to +∞ or xe2x88x92∞, and if the correct interpolated value is obtained, all the digital data values must be considered. However, actually, the tap coefficients of a digital filter are set up in a limited range of digital data under consideration from the convenience of the circuit scale, whereby the interpolated value contains a truncation error. This truncation error can be decreased by setting the number of tap coefficients for the digital filter at higher degree, in which there is a problem that the circuit scale is increased, with a tradeoff relation between decreasing the truncation error and reducing the circuit scale. Moreover, when such an oversampling operation is performed in DSP, etc., a value of the above mentioned sampling function (sinc function) has to be kept computing at a high speed, thereby limiting the process performance.
Such a problem is caused by employing the sinc function as a sampling function correctly. Considering that a truncation error or a quantizing noise may occur even when the sinc function is used, there is less need of generating the sinc function at high precision. Accordingly, if the function values approximating the sinc function can be generated fast in a predetermined range with a simple circuit structure, the data interpolation process is enabled by using the function values in the same manner as when using the sinc function.
The present invention has been developed based on the above mentioned problems, the object of the present invention is to provide a sampling function waveform data generating device for fast generating data on a waveform approximating a sampling function with a simple circuit structure.
A sampling function waveform data generating device of the present invention comprises data output unit for sequentially outputting digital waveform data of a predetermined step function, and digital integrating unit for digitally integrating the waveform data output from the data output unit to output a sampling function of a local support that takes 1 in sampling position t=0, 0 in all the other sampling positions, 0 in the range t less than xe2x88x92n and t greater than +n where n is a positive integer greater than 1, and a value other than 0 in the other range, and converges to 0 in sampling positions t=+n.
The sinc function takes 1 only in sampling position t=0, and 0 in all the other sampling positions, and converges to 0 as t goes to +∞ or xe2x88x92∞m, as shown in FIG. 7. When this sinc function is applied to the practical circuit, a limited range of sampling position is employed so that a truncation error is overlooked in the current situation. Thus, in this invention, the sinc function itself is not output, but a waveform approximating the sinc function is output. Namely, the sinc function is substituted by a sampling function of a local support that is differentiable finite times, and takes 1 in sampling position t=0, 0 in all the other sampling positions, 0 in the range t less than xe2x88x92n and t greater than +n where n is a positive integer greater than 1, and a value other than 0 in the other range, and converges to 0 in sampling positions t=+n. In order to obtain the waveform that is differentiable finite times, the integration may be made. For example, a broken-line function with a waveform as shown in FIG. 5 can be obtained by integrating a step function with a waveform as shown in FIG. 2. Further, a waveform approximating the sampling function as shown in FIG. 6 can be obtained by integrating the broken-line function with the waveform as shown in FIG. 5. Thus, in this invention, digital waveform data of the step function as shown in FIG. 2 is output sequentially, employing the data output unit, and then integrated plural times by the digital integrating unit, whereby the sampling function as shown in FIG. 6 is generated through the digital processing. The sampling function as shown in FIG. 6 converges to 0 in sampling positions t=xc2x13, and can be employed to make the interpolation, whereby three sampling values before and after the interpolated position may be only considered to reduce the amount of operations largely. Also, since the interpolation is truncated at the sampling positions where the function converges to 0, but not halfway of the sampling positions to be operated such as the sinc function, the influence due to truncation error can be eliminated. Further, since the range of sampling position to be operated can be narrowed, the less number of data is necessary to be held so that the circuit scale can be reduced.
It is desirable that the digital integrating unit outputs a sampling function of a local support that takes 1 in sampling position t=0, 0 in sampling positions t=xc2x11, t=xc2x12, t less than xe2x88x923 and t greater than +3, and a value other than 0 in the other range, and converges to 0 in sampling positions t=xc2x13. This is a case where the value of n is limited to 3, and it is possible to output a sampling function that converges to 0 in sampling positions t=xc2x13, as shown in FIG. 6.
Also, it is desirable that the digital integrating unit outputs a sampling function of a local support that takes 1 in sampling position t=0, 0 in sampling positions t=xc2x11, t less than xe2x88x922 and t greater than +2, and a value other than 0 in the other range, and converges to 0 in sampling positions t=xc2x12. This is a case where the value of n is limited to 2, and it is possible to output a sampling function that converges to 0 in sampling positions t=xc2x12.
Furthermore, the data output unit preferably comprises a memory for holding the values of the step function, and data reading unit for reading cyclically the values held in the memory in predetermined order. Since the waveform data of the sampling function having the value changing continuously can be generated only by holding the values of the step function, the circuit scale can be more reduced.
Furthermore, it is preferable that the sampling function is differentiable finite times. The sampling function that is differentiable finite times can be generated by integrating the waveform data of the step function a predetermined number of times, resulting in the simplified processing.